using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("AnimPositionResetter")]
	public class AnimPositionResetter : MonoBehaviour
	{
		public Vector3 m_initialPosition => method_2<Vector3>("m_initialPosition");

		public float m_endTimestamp => method_2<float>("m_endTimestamp");

		public float m_delay => method_2<float>("m_delay");

		public AnimPositionResetter(IntPtr address, string className)
			: base(address, className)
		{
		}

		public AnimPositionResetter(IntPtr address)
			: this(address, "AnimPositionResetter")
		{
		}

		public static AnimPositionResetter OnAnimStarted(GameObject go, float animTime)
		{
			return MonoClass.smethod_15<AnimPositionResetter>(TritonHs.MainAssemblyPath, "", "AnimPositionResetter", "OnAnimStarted", new object[2] { go, animTime });
		}

		public static AnimPositionResetter RegisterResetter(GameObject go)
		{
			return MonoClass.smethod_15<AnimPositionResetter>(TritonHs.MainAssemblyPath, "", "AnimPositionResetter", "RegisterResetter", new object[1] { go });
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public Vector3 GetInitialPosition()
		{
			return method_11<Vector3>("GetInitialPosition", Array.Empty<object>());
		}

		public float GetEndTimestamp()
		{
			return method_11<float>("GetEndTimestamp", Array.Empty<object>());
		}

		public float GetDelay()
		{
			return method_11<float>("GetDelay", Array.Empty<object>());
		}

		public void OnAnimStarted(float animTime)
		{
			method_8("OnAnimStarted", animTime);
		}
	}
}
